<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * 栏目分类 模型
 */
class Category_model extends MY_Model {

    protected $_table      = 'doc_category';
    protected $primary_key = 'id';
    protected $return_type = 'array';

    protected $before_create = array('before_create', 'serialize(settings)');
    protected $before_update = array('before_update', 'serialize(settings)');
    protected $after_get     = array('unserialize(settings)');

    public function __construct() {
        parent::__construct();
        log_message('debug', 'Category_model Model Class Initialized');
    }

    /**
     * 获取所有分类
     */
    public function get_all() {
        $this->order_by('vieworder');
        $rts = parent::get_all();
        $cats = array();
        foreach ($rts as $rt) {
            $cats[$rt[$this->primary_key]] = $rt;
        }
        return $cats;
    }

    /**
     * 获取除了自己以及后辈的所有分类
     *
     * 主要用于移动分类时使用
     * 因为分类之间使用 id pid 来关联上下级关系
     * 所以只要移除掉某级分类，则旗下的子分类也会被移动
     *
     * @param int $except_id 不显示的分类ID
     * @return array
     */
    public function get_move_dropdown($except_id) {
        return $this->get_many_by($this->primary_key . ' !=', $except_id);
    }

    /**
     * settings 字段默认数据
     */
    public function get_default_settings() {
        $sets = array();
        $sets['seo_title'] = '';
        $sets['seo_keyword'] = '';
        $sets['seo_descrip'] = '';
        $sets['view_title_length'] = 50; //列表标题显示字数
        $sets['view_post_perpage'] = 20; //列表显示主题个数
        $sets['view_comment_perpage'] = 20; //文章评论显示条数
        $sets['post_allowtype'] = array(); //允许文章模型
        $sets['post_typeorder'] = array(); //文章模型排序
        $sets['post_check'] = 3; //审核设置（0不需审核 | 1审核主题 | 2审核评论 | 3审核主题和评论）
        $sets['template_index'] = ''; //频道页模板
        $sets['template_list'] = ''; //列表页模板
        $sets['template_detail'] = ''; //详情页模板

        return $sets;
    }

    protected function before_create($save) {
        $save['created_time'] = $save['updated_time'] = TIMESTAMP;
        return $save;
    }

    protected function before_update($save) {
        $save['updated_time'] = TIMESTAMP;
        return $save;
    }
}

/* End of file category_model.php */
/* Location: ./application/models/category_model.php */
